package com.video.video.mapper;

import com.video.video.domain.app.dto.MemberDto;
import com.video.video.domain.vo.UserQuery;
import java.util.List;
import com.video.video.domain.DUser;

/**
 * 客户Mapper接口
 *
 * @author ruoyi
 * @date 2022-09-27
 */
public interface DUserMapper
{
    /**
     * 查询当前会员下子级数量
     * @param userId
     * @return
     */
    Integer getNumsByUserId(String userId);
    /***
     * 根据会员ID
     * 查询成员列表
     * @param userId
     * @return
     */
    List<MemberDto> getMemberListByUserId(String userId);
    /**
     * 查询客户
     *
     * @param id 客户主键
     * @return 客户
     */
    public DUser selectDUserById(String id);

    /***
     * 根据邀请码查询用户信息
     * @param inviteCode
     * @return
     */
    DUser selectDUserByInviteCode(String inviteCode);

    /**
     * 查询客户列表
     *
     * @param dUser 客户
     * @return 客户集合
     */
    public List<DUser> selectDUserAllList(DUser dUser);

    /**
     * 查询客户列表
     *
     * @param dUser 客户
     * @return 客户集合
     */
    public List<DUser> selectDUserList(UserQuery dUser);


    /**
     * 查询到期的 非 普通会员
     * @return
     */
    public List<Integer> listIdBecomeDue();

    /**
     * 将所有到期的VIP 改成 非VIP
     */
    public void updateBecomeDueVip();

    /**
     * 新增客户
     *
     * @param dUser 客户
     * @return 结果
     */
    public int insertDUser(DUser dUser);

    /**
     * 修改客户
     *
     * @param dUser 客户
     * @return 结果
     */
    public int updateDUser(DUser dUser);

    /**
     * 删除客户
     *
     * @param id 客户主键
     * @return 结果
     */
    public int deleteDUserById(String id);

    /**
     * 批量删除客户
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteDUserByIds(String[] ids);
}
